home *** CD-ROM | disk | FTP | other *** search
/ Scene Storm / Scene Storm - Volume 1.iso / coding / c / amiexpress / source / utils / filestatus / dstatus.c < prev    next >
Encoding:
C/C++ Source or Header  |  1992-12-26  |  2.6 KB  |  122 lines

  1. #include <exec/types.h>
  2. #include <exec/exec.h>
  3. #include <stdio.h>
  4. #include <stdlib.h>
  5. #include <functions.h>
  6. #define NL NULL
  7. char image[200];
  8. void sr(char *str);
  9. void CheckFiles(void);
  10. void end();
  11. int CheckForDirs(char PathsFile[]);
  12. int NumDirs=0;
  13. main(int argc,char *argv[])
  14. {
  15.   if(argc<2)
  16.   {
  17.         printf("UStatus v1.0, written by Joseph Hodge\n");
  18.         printf("Usage: UStatus <conference path> [dirnum]\n");
  19.         printf("   ie: DirStatus BBS:PD\n");
  20.         printf("\n");
  21.         exit(0);
  22.   }
  23.  NumDirs=0;
  24.  if(argc==3) NumDirs=atoi(argv[2]);
  25.  strcpy(image,argv[1]);
  26.  sr(image);
  27.   printf("\nUStatus v1.0, written by Joseph Hodge\n");
  28.   printf("\n\nPerforming validation..\n\n");
  29.    CheckFiles();
  30.    end();
  31. }
  32.  
  33. void CheckFiles(void)
  34. {
  35.    FILE *fi;
  36.    char PathsFile[200];
  37.    char Dirs[200];
  38.    int i=0;
  39.    int NumFound=0;
  40.    int NumLost=0;
  41.    sprintf(Dirs,"%s/ndirs",image);
  42.    sprintf(PathsFile,"%s/Paths",image);
  43.    
  44.    if(access(PathsFile,00))
  45.    {
  46.      printf("Can't locate paths file\n");
  47.      printf("Please check to insure the conference path was correct. IE:\n");
  48.      printf("BBS:PD\n");
  49.      end();
  50.    }
  51.    if(access(Dirs,00))
  52.    {
  53.     printf("Can't locate ndirs file\n");
  54.      printf("Please check to insure the conference path was correct. IE:\n");
  55.      printf("BBS:PD\n");
  56.      end();
  57.    }
  58.    fi=fopen(Dirs,"r");
  59.    fgets(Dirs,80,fi);
  60.    fclose(fi);
  61.    if(NumDirs==0) NumDirs=atoi(Dirs);
  62.    i=1;i=NumDirs;
  63.    while(i<=NumDirs)
  64.    {
  65. printf("\nScanning dir%d...\n",i);
  66.      sprintf(PathsFile,"%s/dir%d",image,i);
  67.      
  68.      NumFound=0; NumLost=0;
  69.      fi=fopen(PathsFile,"r");
  70.      if(fi!=NULL)
  71.      {
  72.        while(fgets(PathsFile,80,fi)!=NULL)
  73.        {
  74.           if(PathsFile[0]>32 && (PathsFile[13]=='P' || PathsFile[13]=='N'))
  75.           {
  76.             sr(PathsFile);
  77.             if(!CheckForDirs(PathsFile)) NumLost +=1;
  78.             NumFound +=1; 
  79.           }
  80.        }
  81.   
  82.        fclose(fi);
  83.        printf("\n  Total Files %d, Total missing %d\n",NumFound,NumLost);
  84.      }
  85.      else printf("  Can't locate dir\n\n");
  86.      i++;
  87.     }
  88. }
  89. int CheckForDirs(char PathsFile[])
  90. {
  91.    FILE *fi;
  92.    char DirFile[200];
  93.    char FileName[20];
  94.    sprintf(FileName,"%-13.13s",PathsFile);
  95.    sr(FileName);
  96.    sprintf(DirFile,"%s/paths",image);
  97.    fi=fopen(DirFile,"r");
  98.    while(fgets(DirFile,80,fi)!=NULL)
  99.    {
  100.       sr(DirFile);
  101.       strcat(DirFile,FileName);
  102.       if(!access(DirFile,00)) { fclose(fi); return(1); }
  103.    }
  104.    fclose(fi);
  105.    printf("  Can't locate file %s\n",FileName);
  106.    return(0);
  107. }
  108. void sr(char *str)
  109. {
  110.    register int i;
  111.    i=strlen(str)-1;
  112.    while(i)
  113.    {
  114.       if(*(str+i)<=32) *(str+i)='\0'; else return;
  115.       i--;
  116.    }
  117. }
  118.  
  119. void end()
  120. {
  121.   exit(0);
  122. }